var fs=require('fs');

var path=require('path');

var router=require('koa-router')();


// 搜索过滤所有的路由文件
function getEachControllerFiles(p){
    var files=fs.readdirSync(__dirname);

    var filesFilter=files.filter((name)=>{
        return name.endsWith('.js')&& name !=='index.js';
    });
    return filesFilter;
}

// 遍历每一个路由文件，注册每一个定义的路由
function registeRoutes(filesFilter){
    filesFilter.forEach(x=>{
        var temPath=path.join(__dirname,x);
        var tmpRoutes=require(temPath);
        for(var x in tmpRoutes){
            let valueArr=tmpRoutes[x];
            // 获得键值对中的值，里面的请求类型
            let type = valueArr[0];
            // 获取键值中的值（是一个数组），里面的处理函数
            // let fn = tmpRoutes[x][1];
            if (type === 'get') {
                if(valueArr.length===2){
                    let fn=valueArr[1];
                    router.get(x, fn);
                }else{
                    let auth=valueArr[1];
                    let fn=valueArr[2];
                    router.get(x,auth,fn);
                }
            }
            else if (type === 'post') {
                if(valueArr.length===2){
                    let fn=valueArr[1];
                    router.post(x, fn);
                }else{
                    let auth=valueArr[1];
                    let fn=valueArr[2];
                    router.post(x,auth,fn);
                }
            }
        }
    })
}


module.exports=function(){
    var a=getEachControllerFiles();
    registeRoutes(a);
    return router.routes();
}